AWS Lambda
2020/06時点で128MB から3008MB のメモリを使用することができる 料金
実行時間は100ミリ秒の単位で記録され,実行時間に比例して料金が決定される
例
128MB のメモリーを使用する関数をそれぞれ200ミリ秒,合計で100万回実行する
0.0000002083 * 2 * 10^6 = $0.4 の料金となる
ウェブサーバーのデータベースの更新など簡単な計算であれば200ミリ秒程度で実行できる関数も多いことから,100万回データベースの更新を行ったとしても,たった $0.4 しかコストが発生しないことになる. 動作
ユーザーは実行したいプログラムを予め登録しておく
プログラムを実行するコマンドをLambdaに送信する
数ミリセカンドから数百ミリセカンドのレイテンシでプログラムの実行を開始する 実行結果をクライアントやその他の計算機に返す
code:python
FUNC = """
import time
from random import choice, randint
def handler(event, context):
time.sleep(randint(2,5))
message = "Congratulations! You are given " + choice(pokemon)
print(message)
return message
"""
class SimpleLambda(core.Stack):
def __init__(self, scope: core.App, name: str, **kwargs) -> None:
super().__init__(scope, name, **kwargs)
handler = _lambda.Function(
self, 'LambdaHandler',
runtime=_lambda.Runtime.PYTHON_3_7,
code=_lambda.Code.from_inline(FUNC), # コードの文字列またはファイルパス
handler="index.handler",
memory_size=128,
timeout=core.Duration.seconds(10),
dead_letter_queue_enabled=True,
)
参考